/*
 * Copyright (C) 2012 Santiago Valdarrama
 * 
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at 
 * 
 * http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * 
 */
package com.yuanmei.stockeyes.artifacts;

import android.content.res.Resources;
import android.view.View;
import android.widget.TextView;

import com.yuanmei.stockeyes.R;
import com.yuanmei.stockeyes.model.Stock;

public class StockTileViewHolder {
    private Stock stock;
    private int position;
    private final boolean spanned;
    private View tileLayout;
    private TextView codeTextView;
    private TextView priceTextView;
    private TextView changeTextView;
    private TextView turnoverTextView;
    private TextView volumeTextView;
    private TextView rangeTextView;

    public StockTileViewHolder(Resources resources, View view, Stock stock, int position, boolean spanned) {
        this.position = position;
        this.spanned = spanned;
        this.tileLayout = view.findViewById(R.id.tileLayout);
        this.codeTextView = (TextView) view.findViewById(R.id.codeTextView);
        this.priceTextView = (TextView) view.findViewById(R.id.priceTextView);
        this.changeTextView = (TextView) view.findViewById(R.id.changeTextView);
        this.turnoverTextView = (TextView) view.findViewById(R.id.turnoverTextView);
        this.volumeTextView = (TextView) view.findViewById(R.id.volumeTextView);
        this.rangeTextView = (TextView) view.findViewById(R.id.rangeTextView);

        refresh(resources, stock);
    }

    public boolean isFixed() {
        return this.position <= 2;
    }

    public void refresh(Resources resources) {
        refresh(resources, null);
    }

    public void refresh(Resources resources, Stock stock) {
        if (stock != null) {
            this.stock = stock;
        }

        this.codeTextView.setText(this.stock.getName());
        this.priceTextView.setText(toValueOrEmptyString(this.stock.getStringPrice()));

        if (this.spanned) {
//			this.changeTextView.setText(toValueOrEmptyString(this.stock.getStringChangeAndChangePercentage()));
            this.changeTextView.setText(toValueOrEmptyString(this.stock.getStringChangePercentage()));
//            this.turnoverTextView.setText(toValueOrEmptyString(this.stock.getStringTurnover()));
            this.volumeTextView.setText(toValueOrEmptyString(this.stock.getStringVolumeAndAverageVolume()));
            this.rangeTextView.setText(toValueOrEmptyString(this.stock.getStringDaysPerformance()));
        } else {
            this.changeTextView.setText(toValueOrEmptyString(this.stock.getStringChangePercentage()));
        }

        Extensions.applyPattern(resources, this.tileLayout, this.stock);
    }

    private String toValueOrEmptyString(String value) {
        if (value.equals("-")) {
            return "";
        }

        return value;
    }

    public View getTileLayout() {
        return this.tileLayout;
    }

    public Stock getStock() {
        return this.stock;
    }

    public void setStock(Stock stock) {
        this.stock = stock;
    }

    public int getPosition() {
        return this.position;
    }
}